package com.xuecheng.api.content;

import com.xuecheng.api.content.model.CourseBaseDTO;
import com.xuecheng.api.content.model.CourseBaseVO;
import com.xuecheng.api.content.model.qo.QueryCourseModel;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * <h4>xc</h4>
 * <p>controller層需要實現的接口--swagger</p>
 *
 * @author : by wujianming
 * @date : 2021-12-08 16:56
 **/
@Api(value = "課程 的基本信息",description = "課程基本信息cantroller層接口")
public interface BaseCourseApi {

    @ApiOperation("分頁條件查詢基本的課程信息")
    PageVO queryCouerseList(PageRequestParams page,@RequestBody QueryCourseModel model);


    @ApiOperation("新增课程")
    @ApiImplicitParams({@ApiImplicitParam(name = "courseBaseVO"
    ,required = true, dataType = "CourseBaseVO", paramType = "RequestBody")})
    CourseBaseDTO createCourseBase(CourseBaseVO courseBaseVO);


    @ApiOperation("根据id查询课程")
    @ApiImplicitParam(name = "courseBaseId",required = true,dataType = "CourseBaseDTO"
    ,value = "课程的id",paramType = "long")
    CourseBaseDTO queryCourseById(Long courseBaseId);

    @ApiOperation("更新课程基本信息")
    @ApiImplicitParam(name = "courseBaseVO", value = "课程基本信息VO",
            required = true, dataType = "CourseBaseVO", paramType = "body")
    CourseBaseDTO modifyCourseBase(CourseBaseVO courseBaseVO);


    @ApiOperation("根据Id删除课程信息")
    @ApiImplicitParam(name = "courseBaseId", value = "课程id值", required = true, paramType = "path")
    void removeCoursebase(Long courseBaseId);

    @ApiOperation("课程审核")
    @ApiImplicitParam(name = "courseBaseId",
            value = "课程ID", required = true, dataType = "Long", paramType = "query", example = "1")
    void commitCourseBase(Long courseBaseId);





}



